//
//  AppDelegate.swift
//  Weibo Demo
//
//  Created by 朴裕识 on 15/12/15.
//  Copyright © 2015年 Apple. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //创建window
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        //创建tabbar控制器,指定根控制器
        window?.rootViewController = defaultViewController()
        //设置背景颜色
        window?.backgroundColor = UIColor.whiteColor()
        
        window?.makeKeyAndVisible()
        
        //统一设置所有导航栏字体的tintColor
        setNavigationBarTintColor()
        
        //程序一开始就来加载用户帐号
//        let userAccount = YSPUserAccount.loadUserAccount()
//        print(userAccount)

        return true
    }
    
    private func defaultViewController() -> UIViewController {
        if !YSPUserAccount.userLogin {
            //来到这里说明用户没有登录
            //返回主界面
            return YSPMainTabBarController()
        }
        
        //来到这里说明用户已经登录
        return isNewVersion() ? YSPNewFeatureViewController() : YSPWelcomeController()
    }
    private func isNewVersion() -> Bool {
        //获取当前版本
        let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
        //获取上一次保存的版本
        let sandboxVersionKey = "sandboxVersionKey"
        let sandboxVersion = NSUserDefaults.standardUserDefaults().stringForKey(sandboxVersionKey)
         NSUserDefaults.standardUserDefaults().setObject(currentVersion, forKey: sandboxVersionKey)
        return currentVersion != sandboxVersion
    }
    
    //切换程序控制器
    func switchViewController(isMain: Bool) {
        window?.rootViewController = isMain ? YSPMainTabBarController() : YSPWelcomeController()
    }
    
    func setNavigationBarTintColor() {
        //这个是全局的，在这里设置了，所有的UINavigationBar的tintColor都会变色
        let bar = UINavigationBar.appearance()
        bar.tintColor = UIColor.orangeColor()
    }

    func applicationWillResignActive(application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(application: UIApplication) {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }


}

